package 阻塞队列;

import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;

public class 阻塞队列 {

    public static void main(String[] args) throws InterruptedException {
        BlockingDeque<String> queue=new LinkedBlockingDeque<>();
        //LinkedBlockingDeque 是 BlockingDeque的一个具体实现
        queue.put("hello");//处理异常，通过interrupt方法可以中断当前线程，返回InterruptedException异常
        //queue.offer("hello");
        //BlockingDeque 继承自 Queue，所以也有offer方法入队列
        //但是和put()入队列不同的是，put()带有阻塞功能，而offer没有

        //出队列，取元素
        String elem=queue.take();
        System.out.println(elem);
        elem=queue.take();//当队列没有元素，还进行取元素时，会发生阻塞，直到有其他线程给这个队列放入新元素为止
        System.out.println(elem);

    }
}
